package com.sunsys.cxf.examples;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.ParameterStyle;
import javax.jws.soap.SOAPBinding.Style;
import javax.jws.soap.SOAPBinding.Use;
import javax.xml.ws.RequestWrapper;
import javax.xml.ws.ResponseWrapper;

/**
 * 	Message Binding related annotations, we should specify in SEI only
 * 
 * 
 * 	1)	@SOAPBinding		to specify which binding we should use
 * 			
 *  2)	@WebMethod
 *  3)	@RequestWrapper 
 *  4) 	@ResponseWrapper
 *  5) 	@Oneway
 *  6) 	@WebParam
 *  7)	@WebResult
 *  8)	@WebFault
 *
 */


@WebService(name="messageServiceName", targetNamespace="http://sunsys.org/cxf/examples/CodeFirstSerivceJaxWsSoapHttp")
@SOAPBinding(style=Style.DOCUMENT, use=Use.LITERAL, parameterStyle=ParameterStyle.WRAPPED)
public interface MessageService {

	
	/**
	 * @WebService		the following attributes are allowed in the Service Interface 
	 * 		name					Specifies the Name of the service Interface. 
	 * 		tragetNamespace			target Name space 
	 * 		wsdlLocation			specifies the URI at which wsdl is stored
	 */
	
	@WebMethod(operationName="messageWebMethod")
	@RequestWrapper(className="java.lang.String")
	@ResponseWrapper(className="java.lang.String")
	@WebResult(name="messageWebResult")
	public String message(@WebParam( name="messageWebParam")String message);
}
